#ifndef SI_H
#define SI_H
#include <sstream>
#include "sentencia.h"
#include "expr.h"
class Si:public Sentencia
{
public:
    Si(Sentencia *next,Expr *expr,Sentencia* instrucciones, Sentencia* sino,int fila,int col);
    Expr* getExpr();
    Sentencia* getInstrucciones();
    Sentencia* getSino();
    void setExpr(Expr *expr);
    void setInstrucciones(Sentencia *instrucciones);
    void setSino(Sentencia *sino);
    virtual string is();
    virtual Tipo_ts * validarSemantica(Tabla_Simbolos*tabla_de_tipo,Tabla_Simbolos *tabla_de_varaible);
    virtual string generarCodigo(GenerarVariable* var,Tabla_Simbolos *tabla_de_tipo,Tabla_Simbolos *tabla_de_varaible);
private:
    Expr *expr;
    Sentencia *instrucciones;
    Sentencia *sino;
};

#endif // SI_H
